iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0
Software Development

敏捷 30 天養成計劃系列 第 4

敏捷幼幼班~敏捷招式有多少

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20190905/20106486Gw7DAZ8nqL.jpg

『戲法人人會變,巧妙各有不同』。很多人對敏捷的誤解就是『敏捷就是 Scrum』,就像有人談論武俠小說的武功門派,說『天下武功就是少林派武功』一樣有趣。沒有一種武功是天下無敵,因為一物剋一物,每一種五工都有其優勢,也同樣有其劣勢。『敏捷方法』也是,不同情境可能就有適合的『招式』,當我們知道各個『敏捷武功』的優缺點時,才能在適當的時機選擇最佳方案。

在周星馳電影功夫中有一句話說:『天下武功,無堅不破,唯快不破!』,敏捷就是一種『快』的武功,它的快不是做的快,而是反應快,面對不確定的市場,唯有反應比對手快才有存活的機會。
其實『敏捷』(Agile)一詞是在 2001 年『敏捷宣言』的聚會中才首次被提出來,但屬於『敏捷』的方法卻早在更早之前就有。下面我大概對幾個常見的敏捷方法簡介一下,之後有機會再一一說明。

Scrum 方法
在敏捷方法中,最著名的莫過於是『Scrum』,Scrum 是英式橄欖球(Rugby)運動中列陣爭球的動作。以下是參考 Wiki 整理。

  • 1986年,竹內弘高和野中郁次郎闡述了一種新的整體性的方法 ,提高商業新產品開發的速度和靈活性:這種新的整體性方法與橄欖球相比較,前者各階段相互重疊,並且由一個跨職能團隊在不同的階段完成整個過程,而團隊「作為一個整體前進,把球傳來傳去」。
  • 1991年,DeGrace 和 Stahl 在《Wicked Problems, Righteous Solutions》一書中將這種方法稱為 scrum,也是 1986 年文章中提到的橄欖球術語。
  • 1990年代初,肯·施瓦伯 與 傑夫·薩瑟蘭 在分別在他們的公司使用了這一類的作法,並首次稱之為 Scrum。
  • 1995年,在奧斯汀舉辦的 OOPSLA ‘95上,薩瑟蘭和施瓦伯聯合發表了論文首次提出了 Scrum 概念。
  • 2001年,施瓦伯與麥克·比竇(Mike Beedle)合著了《敏捷軟體開發-使用Scrum過程》一書,介紹了Scrum 方法。

看板方法(Kanban)

『看板』(Kanban)是一種生產管理系統,由 1940 年代的豐田(Toyota)汽車公司發明。『看板』在日文指的『視覺化卡片』或『信號卡』的意思。在豐田生產系統(Toyota Production System; TPS)中用於管理生產流程的任務板稱為『看板』(Kanban Board)。TPS 又稱為是一種『即時化管理機制』(Just-In-Time),透過看板即時呈現現場狀態,幫助企業持續改進生產流程,提高生產效率、品質與反應速度。

2005 年『大衛・安德森』(David J. Anderson)首次在軟體開發上使用了『看板』,2007 年『看板方法』(Kanban method)正式被命名。因此,『大衛・安德森』又被稱為『看板之父』。

看板有六大實踐:

  1. 強調視覺化(Visualize)
  2. 限制半成品(Limit Working In Progress; WIP)
  3. 管理工作流程(Manage Flow)
  4. 明確流程規則(Make Process Policies Explicit)
  5. 落實反饋循環(Implement feedback mechanisms)
  6. 協作改善,試驗中演進(Improve Collaboratively, Evolve Experimentally (using models & the scientific method))

極限編程(eXtreme Programming; XP)

1996 年由 Kent Beck 所提出,雖然在 Kent Beck 當時採用的 C3 專案上並沒有成功,但是其中很多概念及工程實踐卻深深的影響之後的『敏捷開發』,比如說『結隊編程』(Pair Programming)、測試驅動開發(Test-Driven Development)、單元測試(Unit Testing)、持續整合(Continuous Integration)、小規模發布(Small Release)、重構(Refactoring)。

極限編程的四大價值為:溝通(Communication )、簡單(Simplicity)、 回饋(Feedback)、勇氣(Courage)與尊重(Respect)。

精益方法(Lean)

2003 年 Mary Poppendieck 與 Tom Poppendieck 提出了『精益軟體開發』(Lean Software Development)的想法。簡單來說,精益軟體開發的七大原則分別為:

  1. 消除浪費(Eliminate waste)
  2. 增強學習(Amplify learning)
  3. 儘量延遲決定(Decide as late as possible)
  4. 儘快發布(Deliver as fast as possible)
  5. 授權團隊(Empower the team)
  6. 嵌入品質(Build integrity in)
  7. 全局優化(See the whole)

原文請參考:【文思不藏私】 敏捷幼幼班~敏捷招式有多少


上一篇
敏捷幼幼班~敏捷宣言知多少
下一篇
敏捷小班~Scrum 教什麼?
系列文
敏捷 30 天養成計劃30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言